#pragma once

#include "common.hpp"

template<class T>
class indirect_list
{
public:
  indirect_list();
  ~indirect_list();

  bool is_empty()
  {
    return 0 == size_;
  }
  const size_t& size();
  bool find(size_t pos, T& t) const;
  bool remove(size_t pos, T& t);
  bool insert(const T& t);
private:
  size_t size_;
  size_t max_size_;
  T** table_;
};

